﻿using _17bangMVC.Models;
using _17bangMVC.Models.Article;
using SRV.ServiceInterface;
using SRV.ViewModel.Article;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace _17bangMVC.Controllers
{
    public class ArticleController : BaseController
    {
        private IArticleService articleService;
        public ArticleController(IArticleService articleService)
        {
            this.articleService = articleService;
        }

        // GET: Article
        public ActionResult Index()
        {
            ArticleModel model = new ArticleModel
            {
                ArticleLists = new List<ArticleListItemModel>
                {
                    new ArticleListItemModel
                    {
                    Id = 846,
                    Title = @"快快乐乐的吹个水：梦想还是要有的",
                    Body = @"最直接最打脸的办法：【野生程序员】：优先招聘 你觉得那些看学历的公司是傻缺，你不傻，那你来办一个不看学历的公司呀？
                    你觉得那些不要35岁老码农的公司是傻缺，你不傻，那你来办一个不看年龄的公司呀？叽叽歪歪说那么多干嘛？
                    你有创业的经历你有十年的行业经历你还有影响力把这个公司做成功，不要太成功，给所有野生程序猿一口饭吃，一口不太差的饭吃没有面试机会？骗HR不骗TechLeader。
                    更多内容不宜公开。 PS：某乎上面某培训机构：收学生都至少要大专学历，飞哥不要！昨天和同学聊天，最大的成就感不来自那些本来就非常优秀 ……",
                    PublishTime = new DateTime(2022,3,14,21,59,13),
                    User = new UserPageModel
                    {
                        Id = 24,
                        Name = "小九",
                        Level = 4,
                    },
                    KeyWords = new List<KeyWordModel>
                    {
                        new KeyWordModel{Name = "梦想"},
                        new KeyWordModel{Name = "源栈"},
                    },
                       Comments = new CommentModel
                    {
                       CommentCount = 0
                    },
                    Appraise = new AppraiseModel
                    {
                        AgreeAmount = 8,
                        DisagreeAmount = 2,
                    }},

                    new ArticleListItemModel
                    {
                    Id = 845,
                    Title = @"我有一个梦想：助力职业自由！（制作中……）",
                    Body = @"最直接最打脸的办法：【野生程序员】：优先招聘 你觉得那些看学历的公司是傻缺，你不傻，那你来办一个不看学历的公司呀？你觉得那些不要35岁老码农的公司是傻缺，
                    你不傻，那你来办一个不看年龄的公司呀？叽叽歪歪说那么多干嘛？你有创业的经历你有十年的行业经历你还有影响力把这个公司做成功，不要太成功，
                    给所有野生程序猿一口饭吃，一口不太差的饭吃没有面试机会？骗HR不骗TechLeader。 更多内容不宜公开。 PS：某乎上面某培训机构：收学生都至少要大专学历，飞哥不要！
                    昨天和同学聊天，最大的成就感不来自那些本来就非常优秀 ……",
                    User = new UserPageModel
                    {
                        Id = 1,
                        Name = "叶飞",
                        Level = 10
                    },
                    PublishTime = new DateTime(2022,3,12,13,14,20),
                    KeyWords = new List<KeyWordModel>
                    {
                        new KeyWordModel { Name="梦想"},
                        new KeyWordModel { Name="源栈"},
                        new KeyWordModel { Name="飞哥"},
                    },
                    Comments = new CommentModel
                    {
                       CommentCount = 0
                    },
                    Appraise = new AppraiseModel
                    {
                        AgreeAmount = 3,
                        DisagreeAmount = 1
                    }
                    },

                    new ArticleListItemModel
                    {
                    Id = 844,
                    Title = @"学校不会教你的那些事",
                    Body = @"程序员的职业，前期靠技术，后期靠什么？技术以外的东西，除了命运，我们姑且将其称之为“情商”吧——为人处世之道。但我对很多源栈同学的情商，深表忧虑啊！
                    飞哥看了只摇头的那种……怎么会这样？然后就想到：他们还是孩子啊（飞哥 => 飞叔），然后就想到自己孩子，头疼得一逼……这就是所谓的“家教”：学校不教的。
                    学校不教，飞哥教。其实我的情商也低，不然不会做码农做得这么开心，而是应该做律师那份有前途的职业，^_^，随意，“教”改成“交”，相互交流时间观念 ……",
                    User = new UserPageModel
                    {
                        Id = 1,
                        Name = "叶飞",
                        Level = 10
                    },
                     PublishTime = new DateTime(2022,3,1,8,30,45),
                    KeyWords = new List<KeyWordModel>
                    {
                        new KeyWordModel { Name="为人处世"},
                        new KeyWordModel { Name="做人"},
                        new KeyWordModel { Name="情商"},
                    },
                    Comments = new CommentModel
                    {
                       CommentCount = 0
                    },
                    Appraise = new AppraiseModel
                    {
                        AgreeAmount = 1,
                        DisagreeAmount = 1
                    }
                    },

                    new ArticleListItemModel
                    {
                    Id = 843,
                    Title = @"出栈之后：简历/面试/陷阱",
                    Body = @"为什么不理我了？你太优秀了，我配不上你。这是一种非常“吃亏”的“好学生”思维。有没有发现：有时候，好学生、漂亮女孩更“自卑”？
                    自我要求更高，更害怕被拒绝、更害怕失败……简历先投！没有面试机会？骗HR不骗TechLeader。 更多内容不宜公开。
                    PS：某乎上面某培训机构：收学生都至少要大专学历，飞哥不要！昨天和同学聊天，最大的成就感不来自那些本来就非常优秀的同学，
                    而是来自那些天赋不高、自身条件不够，但通过不懈的努力，扼住了命运的咽喉，改变自己命运的人！ 我考上了清华，和你老师有什么关系？ 梦想还是要有的最 ……",
                    User = new UserPageModel
                    {
                        Id = 1,
                        Name = "叶飞",
                        Level = 10
                    },
                      PublishTime = new DateTime(2022,2,24,10,07,08),
                    KeyWords = new List<KeyWordModel>
                    {
                        new KeyWordModel { Name="简历"},
                        new KeyWordModel { Name="求职"},
                        new KeyWordModel { Name="面试"},
                    },
                    Comments = new CommentModel
                    {
                       CommentCount = 2
                    },
                    Appraise = new AppraiseModel
                    {
                        AgreeAmount = 0,
                        DisagreeAmount = 1
                    }
                    },

                }
            };
            return View(model);
        }
        [HttpPost]
        public ActionResult Index(ArticleModel model)
        {
            return View();
        }
        public ActionResult Single(int id)
        {
            SingleModel model = articleService.GetById(id);
            return View(model);
        }
        [HttpPost]
        public ActionResult Single()
        {
            return View();
        }
        public ActionResult New()
        {
            return View();
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult New(NewModel model)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }
            int articleId = articleService.Publish(model);
            return RedirectToAction("Single",new { id = articleId });
        }
        public ActionResult Edit(int id)
        {
            EditModel model = articleService.GetEdit(id);
            return View(model);
        }
        [HttpPost]
        public ActionResult Edit(int id,EditModel model)
        {
            int articleId = articleService.Edit(id, model);
            return RedirectToAction("Single", new { id = articleId });
        }
    }
}